#ifndef MESH_H
#define MESH_H

#include "displayable.h"


/*!
 *  \class Mesh
 *  \brief J'utilise le face-vertex mesh :
 *      J'utilise un tableau de sommet, ou chaque sommet enregistre les faces auquel il est rattaché
 *      et un tableau de face, contenant les indices des sommets le formant dans l'ordre horaire
 */

class Face
{
    public :

    Face(int v1, int v2, int v3)
    {
        vertexIndices = new int[3];
        vertexIndices[0]=v1;
        vertexIndices[1]=v2;
        vertexIndices[2]=v3;
    }

    int * vertexIndices;

};

class Mesh : public Displayable
{
    public:

    std::vector<Face*> faces;

    Mesh();

    int size;
    int LoadMesh(std::string fileName);

    void SetPicking(unsigned char x, unsigned char y, unsigned char z);
    void FillBuffer();
    void Picking();
    void Display();
    void RenderBuffers();
};

#endif // MESH_H
